package com.evil.application.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 应用报表表
 *
 * @author liyang
 * @date 2022-08-08 00:00
 */
@Data
@TableName(value = "evil_application_reporting")
public class ApplicationReporting implements Serializable {

    /**
     * id
     */
    @TableId(value = "reporting_id", type = IdType.AUTO)
    private Long reportingId;

    /**
     * 企业id
     */
    @TableField(value = "enterprise_id")
    private Long enterpriseId;

    /**
     * 应用id
     */
    @TableField(value = "application_id")
    private Long applicationId;

    /**
     * 报表key
     */
    @TableField(value = "reporting_key")
    private String reportingKey;

    /**
     * 报表名称
     */
    @TableField(value = "reporting_name")
    private String reportingName;

    /**
     * 报表类型（0-未知，1-数据表，2-指标卡，3-柱状表，4-折线图，5-饼状图）
     */
    @TableField(value = "reporting_type")
    private Integer reportingType;

    /**
     * 报表维度（行、表头）
     */
    @TableField(value = "reporting_headers")
    private String reportingHeaders;

    /**
     * 报表维度（列）
     */
    @TableField(value = "reporting_column_headers")
    private String reportingColumnHeaders;

    /**
     * 指标
     */
    @TableField(value = "reporting_targets")
    private String reportingTargets;

    /**
     * 排序开关(0-关闭, 1-开启)
     */
    @TableField(value = "sort_status")
    private Integer sortStatus;

    /**
     * 排序配置
     */
    @TableField(value = "sorts")
    private String sorts;

    /**
     * 排名(0-关闭, 1-开启)
     */
    @TableField(value = "ranking_status")
    private Integer rankingStatus;

    /**
     * 排名配置
     */
    @TableField(value = "ranking_config")
    private String rankingConfig;

    /**
     * 筛选条件开关(0-关闭, 1-开启)
     */
    @TableField(value = "filter_status")
    private Integer filterStatus;

    /**
     * 查询条件开关(0-关闭, 1-开启)
     */
    @TableField(value = "query_status")
    private Integer queryStatus;

    /**
     * 查询条件类型(0-精确查询, 1-模糊查询)
     */
    @TableField(value = "query_type")
    private Integer queryType;

    /**
     * 查询条件
     */
    @TableField(value = "query_config")
    private String queryConfig;

    /**
     * 控件权限开关(0-关闭, 1-开启)
     */
    @TableField(value = "control_permission_status")
    private Integer controlPermissionStatus;

    /**
     * 样式类型（0-默认，1-蓝橙撞色，2-英伦酒红，3-清新草绿，4-神秘魅紫，5-热情暖阳）
     */
    @TableField(value = "style_type")
    private Integer styleType;

    /**
     * 权限状态(0:全体, 1:指定)
     */
    @TableField(value = "permission_status")
    private Integer permissionStatus;

    /**
     * 操作权限配置
     */
    @TableField(value = "permission_config")
    private String permissionConfig;

    /**
     * 备注开关(0-关闭, 1-开启)
     */
    @TableField(value = "remark_status")
    private Integer remarkStatus;

    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;

    /**
     * 是否已删除(0:否, 1:是)
     */
    @TableField(value = "is_deleted")
    private Integer isDeleted;

    /**
     * 创建人
     */
    @TableField(value = "creator_id")
    private Long creatorId;

    /**
     * 创建人名字
     */
    @TableField(value = "creator_name")
    private String creatorName;

    /**
     * 修改操作人
     */
    @TableField(value = "modifier_id")
    private Long modifierId;

    /**
     * 修改操作人名字
     */
    @TableField(value = "modifier_name")
    private String modifierName;

    /**
     * 创建时间
     */
    @TableField(value = "created")
    private Date created;

    /**
     * 更新时间
     */
    @TableField(value = "updated")
    private Date updated;

    @Serial
    private static final long serialVersionUID = 1L;

    public static final String COL_REPORTING_ID = "reporting_id";

    public static final String COL_APPLICATION_ID = "application_id";

    public static final String COL_REPORTING_KEY = "reporting_key";

    public static final String COL_REPORTING_NAME = "reporting_name";

    public static final String COL_REPORTING_TYPE = "reporting_type";

    public static final String COL_REPORTING_HEADERS = "reporting_headers";

    public static final String COL_REPORTING_COLUMN_HEADERS = "reporting_column_headers";

    public static final String COL_REPORTING_TARGETS = "reporting_targets";

    public static final String COL_SORT_STATUS = "sort_status";

    public static final String COL_SORTS = "sorts";

    public static final String COL_RANKING_STATUS = "ranking_status";

    public static final String COL_RANKING_CONFIG = "ranking_config";

    public static final String COL_FILTER_STATUS = "filter_status";

    public static final String COL_QUERY_STATUS = "query_status";

    public static final String COL_QUERY_TYPE = "query_type";

    public static final String COL_QUERY_CONFIG = "query_config";

    public static final String COL_CONTROL_PERMISSION_STATUS = "control_permission_status";

    public static final String COL_STYLE_TYPE = "style_type";

    public static final String COL_PERMISSION_STATUS = "permission_status";

    public static final String COL_PERMISSION_CONFIG = "permission_config";

    public static final String COL_REMARK_STATUS = "remark_status";

    public static final String COL_REMARK = "remark";

    public static final String COL_IS_DELETED = "is_deleted";

    public static final String COL_CREATOR_ID = "creator_id";

    public static final String COL_CREATOR_NAME = "creator_name";

    public static final String COL_MODIFIER_ID = "modifier_id";

    public static final String COL_MODIFIER_NAME = "modifier_name";

    public static final String COL_CREATED = "created";

    public static final String COL_UPDATED = "updated";
}